<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <p>请添加额外代码使得以下代码成立</p>
    <p>var [a,b] = {a:1,b:2}</p>

    <script>
        // 分析
        // 1 直接执行控制台会报错的，因为我们想要用数组解构，需要解构对象是一个可迭代的对象，然后利用可迭代对象返回的可迭代对象，解构实际就是可迭代对象调用next()方法取值，但是对象又不是
        // 所以，目的将对象变成可迭代的就可以了
        // 2. 只能通过额外代码实现，那么只能操作原型链了，通过给Object.propetype添加迭代对象实现

        // 返回一个迭代器
        Object.prototype[Symbol.iterator] = function () {
            return Object.values(this)[Symbol.iterator]()
        }

        var [a, b] = { a: 1, b: 2 } // 解构a,b,实际就是调用了两次Next()
        console.log('[ a ] >', a)

    </script>
</body>

</html>